import json

def extract_json(input_string, return_dict=True):
    # 用于跟踪潜在 JSON 对象的变量
    potential_jsons = []
    stack = []
    start_index = None
    
    for i, char in enumerate(input_string):
        if char == '{' and not stack:
            # 第一个开括号
            start_index = i
            stack.append(char)
        elif char == '{':
            # 嵌套的开括号
            stack.append(char)
        elif char == '}' and stack:
            # 闭括号
            stack.pop()
            if not stack:
                # 找到一个完整的类 JSON 字符串
                json_candidate = input_string[start_index:i+1]
                potential_jsons.append(json_candidate)
    
    # 验证每个候选字符串并转换为字典（如果需要）
    valid_jsons = []
    for candidate in potential_jsons:
        try:
            # 尝试解析 JSON
            parsed_dict = json.loads(candidate)
            if return_dict:
                valid_jsons.append(parsed_dict)  # 返回 Python 字典
            else:
                valid_jsons.append(candidate)    # 返回原始 JSON 字符串
        except json.JSONDecodeError:
            # 不是有效的 JSON，跳过
            continue
    
    return valid_jsons